...


@tool
def search_tavily(query: str, search_depth: str = "basic") -> Dict[str, Any]:
    ...


class ResponseFormat(BaseModel):
    """以这种格式回应用户。"""
    status: Literal["input_required", "completed", "error"] = "input_required"
    message: str


class SearchAgent:
    SYSTEM_INSTRUCTION = (
        "你是一个专门进行网络搜索的助手。"
        "你的主要目的是使用'search_tavily'工具来回答用户问题，提供最新、最相关的信息。"
        "如果需要用户提供更多信息来进行有效搜索，将响应状态设置为input_required。"
        "如果处理请求时发生错误，将响应状态设置为error。"
        "如果请求已完成并提供了答案，将响应状态设置为completed。"
    )

    def __init__(self):
        ...

    def invoke(self, query, sessionId) -> str:
        ...

    async def stream(self, query, sessionId) -> AsyncIterable[Dict[str, Any]]:
        ...